Communication networks may be used to transport information from an information provider to one or more different consumers. A technique known as “multicasting” may be used to send information from an information provider to a select group of consumers over the communication network. Multicasting allows the information provider to transmit a packet of multicast information (herein referred to as a “multicast packet”) simultaneously to all consumers in the multicast group. The multicast packet is addressed to the multicast group using a multicast address. Examples of applications that use multicasting are sending an e-mail message to a mailing list, teleconferencing and videoconferencing.
FIG. 1 is a block diagram of an exemplary prior art network device 107, such as a router, in a multicast communication network. When a multicast packet 102 is received by the router 107 from a network 101 to be forwarded, the routes associated with the multicast packet need to be determined by the router 107. The router runs a multicast routing protocol associated with the multicast packet to determine the next hop for the multicast packet based on the multicast packet's address information. Examples of multicast routing protocols are Distance Vector Multicast Routing Protocol (DVMRP), Multiprotocol extensions to Border Gateway Protocol (MBGP), Multicast Open Shortest Path First (MOSPF), and Protocol Independent Multicast (PIM). As shown in FIG. 1, each multicast routing protocol supported by the router 107 typically has its own independently maintained routing table 103–105 that stores the multicast routes known to the specific multicast routing protocol. Each supported multicast routing protocol maintains its own routing table by exchanging route update messages through its own multicast networks. Some multicast routing protocols, such as MOSPF and PIM, also make use of unicast routes from the unicast protocols supported by the router 107. The supported unicast routing protocols have a unicast routing table 106, as shown in FIG. 1, that stores the unicast routes known to the unicast routing protocols supported by the router. Examples of unicast routing protocols are Border Gateway Protocol (BGP), Open Shortest Path First (OSPF) and Routing Information Protocol (RIP).
As mentioned above, when a multicast packet is received by the router 107 to be forwarded, the router 107 needs to determine the routes associated with the multicast packet. The multicast routing protocol associated with the multicast packet will determine the order in which the multicast routing tables 103–105, as well as the unicast routing table if necessary, are accessed and searched to determine the desired route or routes for the multicast packet. Often, each multicast routing table 103–105, as well as the unicast routing table, must be accessed and searched to determine the correct route or routes for the multicast packet. Performing multiple searches involves a significant amount of logic and processing time. In addition, when more than one multicast routing protocol is supported by the router, additional interoperability logic is required to enable the different multicast routing protocols to exchange routing information. The interoperability logic permits one multicast routing protocol to import the routing information of the other multicast routing protocols so that the multicast routing protocol may propagate the other routing protocols' routes in its own network domain.